home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2001 January / Game.EXE_01_2001.iso / demos / Blade of Darkness / data1.cab / Program_Executable_Files / Lib / DefaultSelectionData.py < prev    next >
Encoding:
Text File  |  2000-11-16  |  4.3 KB  |  164 lines

  1. import Bladex
  2. import Select
  3. import Raster
  4. import Actions
  5. import Reference
  6. import CharStats
  7. import math
  8. import netgame
  9. import BUIx
  10. import Language
  11.  
  12. Label_Opacity=1.0
  13. Label_r=128
  14. Label_g=128
  15. Label_b=128
  16.  
  17. if netgame.GetNetState() != 2:
  18.     Select.TurnOnAutoSelect("Player1")
  19.     font_server_behaviour=BUIx.B_FontServer()
  20.     font_behaviour=font_server_behaviour.CreateBFont("../../Data/Letras menu med.bmp")
  21. ######ARMAS
  22.  
  23. execfile("../../Data/ObjIds/"+Language.Current+".py")
  24.  
  25.  
  26.  
  27. stime=-2.0
  28.  
  29. def SelectObject():
  30.     global stime
  31.     time=Bladex.GetTime()
  32.     if(time-stime>0.2):
  33.         pj=Bladex.GetEntity("Player1")
  34.         if(pj.Data.selection_locked and time-stime<2.0):
  35.             Select.SelectNext(pj)
  36.         else:
  37.             Select.AutoSelect(pj)
  38.             if(pj.Data.selected_entity):
  39.                 pj.Data.selection_locked=1
  40.         stime=time
  41.  
  42. def UnSelectObject():
  43.     global stime
  44.     stime=-2.0
  45.     pj=Bladex.GetEntity("Player1")
  46.     pj.Data.selection_locked=0
  47.  
  48.  
  49.  
  50. stime2=-2.0
  51.  
  52. def IntermediateSelect(EntityName):
  53.     SelectEnemy()
  54.  
  55.  
  56. def SelectEnemy():
  57.     global stime2
  58.     time=Bladex.GetTime()
  59.     if(time-stime2>0.1):
  60.         pj=Bladex.GetEntity("Player1")
  61.         if pj.InvRight=="" and pj.InvRightBack<>"" and Reference.GiveObjectFlag(pj.InvRightBack)<>Reference.OBJ_QUIVER:
  62.             if pj.AnmEndedFunc==IntermediateSelect:
  63.                 pj.AnmEndedFunc= None
  64.             Actions.StdToggleWeapons("Player1")
  65.             pj.AnmEndedFunc=IntermediateSelect
  66.             return
  67.         if(pj.Data.enemy_locked):
  68.             Select.SelectNextEnemy(pj)
  69.         else:
  70.             Select.GetVisibleEnemies(pj)
  71.             if(pj.Data.selected_enemy):
  72.                 pj.Data.enemy_locked=1
  73.         stime2=time
  74.         if pj.Data.selected_enemy:
  75.             ene=Bladex.GetEntity(pj.Data.selected_enemy[0])
  76.             if ene and ene.Person:
  77.                 pj.SetActiveEnemy(ene)
  78.  
  79.  
  80. def LabelEntity(entity_name,text,dx,dy):
  81.     entity=Bladex.GetEntity(entity_name)
  82.     if entity:
  83.         screen=Bladex.GetScreenRect()
  84.         text_wh=Bladex.GetTextWH(text)
  85.         text_pos=Bladex.GetScreenXY(entity.Rel2AbsPoint(0.0,0.0,0.0))
  86.         text_x=text_pos[0]-text_wh[0]/2.0+dx
  87.         text_y=text_pos[1]-text_wh[1]/2.0+dy
  88.         if(text_x<screen[0]):
  89.             text_x=screen[0]
  90.         if(text_x+text_wh[0]>screen[2]):
  91.             text_x=screen[2]-text_wh[0]
  92.         if(text_y<screen[1]):
  93.             text_y=screen[1]
  94.         if(text_y+text_wh[1]>screen[3]):
  95.             text_y=screen[3]-text_wh[1]
  96.         Raster.SetFont(font_behaviour.GetPointer())
  97.         Bladex.WriteText(text_x,text_y,text)
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104. def ShowLabelEntity(pj,time):
  105.     global stime
  106.  
  107.     itime=time-stime
  108.     if(itime<=0.5):
  109.         Raster.SetTextColor(0,0,0)
  110.         Raster.SetTextAlpha(Label_Opacity*2.0*itime)
  111.         LabelEntity(pj.Data.selected_entity[0],pj.Data.selected_entity[1][2],1.0/640.0,1.0/640.0)
  112.         Raster.SetTextColor(Label_r,Label_g,Label_b)
  113.         LabelEntity(pj.Data.selected_entity[0],pj.Data.selected_entity[1][2],0,0)
  114.     elif(itime<=1.0):
  115.         Raster.SetTextColor(0,0,0)
  116.         Raster.SetTextAlpha(Label_Opacity)
  117.         LabelEntity(pj.Data.selected_entity[0],pj.Data.selected_entity[1][2],1.0/640.0,1.0/640.0)
  118.         Raster.SetTextColor(Label_r,Label_g,Label_b)
  119.         LabelEntity(pj.Data.selected_entity[0],pj.Data.selected_entity[1][2],0,0)
  120.     elif(itime<2.0):
  121.         Raster.SetTextColor(0,0,0)
  122.         Raster.SetTextAlpha(Label_Opacity*(2.0-itime))
  123.         LabelEntity(pj.Data.selected_entity[0],pj.Data.selected_entity[1][2],1.0/640.0,1.0/640.0)
  124.         Raster.SetTextColor(Label_r,Label_g,Label_b)
  125.         LabelEntity(pj.Data.selected_entity[0],pj.Data.selected_entity[1][2],0,0)
  126.  
  127.  
  128.  
  129. def SelectionAfterFrameFunc(time):
  130.     import Scorer
  131.  
  132.     if not Scorer.VISIBLE:
  133.         return
  134.     pj=Bladex.GetEntity("Player1")
  135.     if pj is None:
  136.         return
  137.  
  138.     if(pj.Data is not None):
  139.         if (pj.Data.selected_entity and pj.Data.selection_locked):
  140.             ShowLabelEntity(pj,time)
  141.         Scorer.SetLifeValue(pj.Life,CharStats.GetCharMaxLife(pj.CharType,pj.Level),pj.Data.Poisoned)
  142.         
  143.     Scorer.SetLevelValue(pj.Level)
  144.     Scorer.SetEnemiesData(pj)
  145.     
  146.     throw_pressed = Bladex.GetTimeActionHeld ("Throw")
  147.     if throw_pressed:
  148.         Scorer.SetStrengthBarValue(Actions.ThrowTime2ThrowForce(throw_pressed))
  149.         Scorer.wLowBarFrame.SetVisible(1)
  150.     else:
  151.         max_energy= CharStats.GetCharMaxEnergy(pj.Kind, pj.Level)
  152.         if pj.Energy < max_energy:
  153.             Scorer.SetEnergyBarValue(pj.Energy, max_energy)
  154.             Scorer.wLowBarFrame.SetVisible(1)
  155.         else:
  156.             Scorer.wLowBarFrame.SetVisible(0)
  157.  
  158. if netgame.GetNetState() == 0:
  159.     Bladex.SetAfterFrameFunc("DefaultSelectionData",SelectionAfterFrameFunc)
  160.  
  161. # The RestoreEnergyFunc is not here!
  162. # See at Basic_Funcs.py
  163.  
  164.